package edu.pe.cayetano.dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;

import edu.pe.cayetano.framework.Configuration;
import edu.pe.cayetano.framework.DAOException;
import edu.pe.cayetano.model.bean.EstadoBean;

public class EstadoDAO  extends BaseDAO{

	public EstadoDAO(Connection cnx) {
		super(cnx);
	}
	
	/**
	 * Metodo que retorna el listado de estados diferentes al estado por asignar
	 * Los estados estan ordenados de acuerdo a su nombre de forma ascendente 
	 * */
	public ArrayList<EstadoBean>  getEstados(int codigo) throws Exception{

		EstadoBean 			estadoTO	 = null;
		ArrayList<EstadoBean> 			lista		 = new ArrayList<EstadoBean> ();
		PreparedStatement   pstmt 		 = null;
		ResultSet 			rs 			 = null;
		String 				schema		 = Configuration.getSchemaDB();
	
		try{
				StringBuffer query  = new StringBuffer();
				query.append(" SELECT ESTADO_ID,NOMBRE FROM "+schema+"ESTADO WHERE TIPO=?");
				query.append(" ORDER BY NOMBRE ASC");
				pstmt = getConnection().prepareStatement(query.toString());
				pstmt.setInt(1,codigo);
				rs=pstmt.executeQuery();
				while(rs.next()){
					estadoTO=new EstadoBean();
					estadoTO.setCodigo(rs.getInt(1));
					estadoTO.setNombre(rs.getString(2));
					lista.add(estadoTO);
				}
			}catch(Exception e){
				throw new DAOException(e.getMessage());
			}finally{
				try{
					try{pstmt.close();}catch(Exception e){}
					try{rs.close();}catch(Exception e){}
				}catch(Exception e1){}
			}
		return lista;
	}
}
